﻿#实现例如(1)或者(123),(0)括号内为数字，java程序中的规则整为matlab中的由(0)>>[1]
#(1)>>[2]
import re
def string_switch(x):
    with open(x, "r", encoding="utf-8") as f:#打开文件
        #readlines以列表的形式将文件读出
        lines = f.readlines()#读取所有行到内存
 
    with open(x, "w", encoding="utf-8") as f_w:
        for line in lines:
            line=re.sub(r'(?P<value>\[\d+\])',double,line)#匹配之后重新赋值给line
             #不能换变量，因为没有匹配就返回原字符串line,便于下面的重新写入。                                               
            f_w.write(line)#写入，包含处理过的写入和不必处理的写入。




def double(matched):#double对(1)或者(123)再次提取中间的数字。
    value=int(re.search('\d+',matched.group('value')).group())
    return '('+str(value+1)+')'#返回[123+1]或者[1+2]



string_switch('Constants.java')



